Previous topicNext topic
Help > Errors and Error Trapping > Error Trapping >
Exiting an error handler

You must exit an error handler with the RESUME LABEL statement. Execution branches immediately to the specified local label, and the original error trap operation is restored ready to catch the next run-time error.

In the sample program, you want to use RESUME to a specific line. Put the line label before the line that requests user input to give the user another chance to enter a correct path.

Here is the sample program, complete with Error Trapping:

SUB GetFileNames(File() AS STRING)

 DIM CurrentDir AS STRING

 DIM fName AS STRING, Mask AS STRING

 DIM X AS INTEGER

 ON ERROR GOTO ErrorTrap

 Mask = "*.*"

 CurrentDir = CURDIR$

 

GetPath:

 Path  = AskUserForPath$()

 fName = DIR$(RTRIM$(Path) + Mask)

 IF LEN(fName) = 0 THEN EXIT SUB

 X = 1

 WHILE LEN(fName)

   Files(X) = fName

   fName = DIR$

   INCR X

 WEND

 EXIT SUB

 

ErrorTrap:

 SELECT CASE ERRCLEAR

   CASE 53   : ErrorMsg "No files in this directory."

   CASE 71   : ErrorMsg "Drive not ready."

   CASE 76   : ErrorMsg "That path doesn't exist."

   CASE ELSE : ErrorMsg "Unknown error!"

 END SELECT

 RESUME GetPath

END SUB

 

See Also

Error Overview

Error Trapping

How error traps work

Setting an error trap

Writing an error handler

Error Trapping Summary